from Determining_ad.src.Tools.testing_tools import TestingUtils


class TestCases:
    """
    同步科学计算器
    关于apl、kdw、激励视频相关用例
    """
    # 定义全局变量
    all_df = None
    ad_df = None
    entity = None
    video_df = None
    first_df = None
    second_df = None
    quit_df = None
    quit_second_df = None
    video50_df = None

    def test_case1(self, custom_error):
        """
        关闭50
        kdw:1-1=5
        axr=0
        apl=2
        误触配置100
        :param custom_error:
        :return:
        """
        # 第一屏5个广告
        TestingUtils.get_ad_sum(custom_error, 5, '01', self.first_df, self.second_df)

        # 第一屏都正确
        TestingUtils.ad111_event_true(custom_error, '01', self.first_df, self.second_df, 4)

        # 点击401
        TestingUtils.click_event_result(custom_error, '401', num_id='01', df_111=self.first_df)

        # 第二屏3个广告
        TestingUtils.get_ad_sum(custom_error, 3, '02', self.first_df, self.second_df)

        # 第二屏都正确
        TestingUtils.ad111_event_true(custom_error, '02', self.first_df, self.second_df, 2)

        # onhide验证apl
        TestingUtils.apl_result(custom_error, self.all_df, self.ad_df, '402', self.entity, '2')

        # 第三屏3个广告
        TestingUtils.get_ad_sum(custom_error, 3, '03', self.first_df, self.second_df)

        # 第三屏都正确
        TestingUtils.ad111_event_true(custom_error, '03', self.first_df, self.second_df, 2)

        # onhidesto验证apl
        TestingUtils.apl_result(custom_error, self.all_df, self.ad_df, '403', self.entity, '2')

        # 第四屏3个广告
        TestingUtils.get_ad_sum(custom_error, 3, '04', self.first_df, self.second_df)

        # 第四屏都正确
        TestingUtils.ad111_event_true(custom_error, '04', self.first_df, self.second_df, 2)

        # onhide验证apl上限
        TestingUtils.apl_result(custom_error, self.all_df, self.ad_df, '404', self.entity, '3')

        # 第五屏0个广告
        TestingUtils.get_ad_sum(custom_error, 0, '05', self.first_df, self.second_df)

        # 给错误列表置空，并且报错
        custom_error.errors_nums()

    def test_case2(self, custom_error):
        """
        开启50   drm=5000（手动判断）,cvsu=-1,prt=1，sro=1
        kdw:不配置
        axr=0
        apl=0
        误触配置0
        :param custom_error:
        :return:
        """
        # 展示广告后请求50正确
        # TestingUtils.video_event_true(custom_error, '50', self.video_df)

        # 只有1次50请求
        # TestingUtils.video_num_result(custom_error, self.video_df, 1, '50')

        # 第一屏3个广告
        TestingUtils.get_ad_sum(custom_error, 3, '01', self.first_df, self.second_df)

        # 第一屏都正确
        TestingUtils.ad111_event_true(custom_error, '01', self.first_df, self.second_df, 2)

        # 点击401
        TestingUtils.click_event_result(custom_error, '401', num_id='01', df_111=self.first_df)

        # 第二屏3个广告
        TestingUtils.get_ad_sum(custom_error, 3, '02', self.first_df, self.second_df)

        # 第二屏都正确
        TestingUtils.ad111_event_true(custom_error, '02', self.first_df, self.second_df, 2)

        # 退出弹窗正确
        TestingUtils.ad110_event_true(custom_error, quit_df=self.quit_df, quit_second_df=self.quit_second_df)

        # 点击231
        TestingUtils.click_event_result(custom_error, '231', df_110=self.quit_df)

        # 退出弹窗apl上限
        TestingUtils.apl_result(custom_error, self.all_df, self.ad_df, '402', self.entity, '4')

        # 手动执行一次热启动操作

        # 第三屏0个广告
        TestingUtils.get_ad_sum(custom_error, 0, '03', self.first_df, self.second_df)

        # 给错误列表置空，并且报错
        custom_error.errors_nums()

    def test_case3(self, custom_error):
        """
        开启50   drm=5000（手动判断）,cvsu=1,prt不配置，sro=2-3
        :param custom_error:
        :return:
        """
        # 点击401
        TestingUtils.click_event_result(custom_error, '401', num_id='01', df_111=self.first_df)

        # 点击广告后请求50正确
        TestingUtils.video_event_true(custom_error, '50', self.video_df)

        # back后请求50正确
        # TestingUtils.video_event_true(custom_error, '50', self.video_df)

        # 2次50请求
        # TestingUtils.video_num_result(custom_error, self.video_df, 2, '50')
